package com.excesys.exsecs.scada.controller;

import com.excesys.exsecs.common.core.util.R;
import com.excesys.exsecs.scada.entity.ScadaDevice;
import com.excesys.exsecs.scada.service.DeviceModelService;
import com.excesys.exsecs.scada.service.ScadaDeviceService;
import lombok.RequiredArgsConstructor;
import org.springdoc.api.annotations.ParameterObject;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequiredArgsConstructor
@RequestMapping("/scadaModel")
public class DeviceModelController {

	private final ScadaDeviceService scadaDeviceService;
	private final DeviceModelService deviceModelService;

	/**
	 * 根据组态id和设备id获取通道
	 * @param scadaDevice
	 * @return
	 */
	@GetMapping
	public R getModel(@ParameterObject ScadaDevice scadaDevice){
		return R.ok(scadaDeviceService.queryModel(scadaDevice),"根据组态id和设备id获取通道");
	}

	/**
	 * 根据组态id和设备id修改通道
	 * @param scadaDevice
	 * @return
	 */
	@PutMapping
	public R updateModel(@RequestBody ScadaDevice scadaDevice){
		return R.ok(scadaDeviceService.updateModel(scadaDevice),"根据组态id和设备id修改通道");
	}

	/**
	 * 测试
	 * @return
	 */
	@GetMapping("/data2")
	public List getModelData(){
		return scadaDeviceService.getModelData2();
	}

	/**
	 * 通过组态ID获取通道
	 * @param id
	 * @return
	 */
	@GetMapping("/data")
	public List getModelData(Long id){
		return scadaDeviceService.getModelData(id);
	}

	/**
	 * 根据消息参数返回物模型 属性、服务
	 * @return
	 */
	@GetMapping("/thing")
	public R getThingByDevId(String unitNo){
		return R.ok(deviceModelService.getThing(unitNo),"返回物模型");
	}


	/**
	 * 根据设备unitNo返回场景信息
	 */
	@GetMapping("/getSceneInfo")
	public R getSceneInfo(String unitNo){

		return null;
	}
}
